package com.zenithmind.common.constant;

public class CacheConstants {

    // Cache Name Prefixes (used in key-prefix in yaml)
    public static final String GLOBAL_CACHE_PREFIX = "zm:";

    // Cache Names (used in @Cacheable/Evict 'value')
    public static final String CACHE_NAME_USERS = "users";
    public static final String CACHE_NAME_ARTICLES = "articles";
    public static final String CACHE_NAME_ARTICLE_LISTS = "articleLists";
    public static final String CACHE_NAME_FILES = "files";
    public static final String CACHE_NAME_SHARES = "shares";
    public static final String CACHE_NAME_CATEGORIES = "categories";
    public static final String CACHE_NAME_TAGS = "tags";

    // Specific Cache Keys (used in @Cacheable/Evict 'key')
    public static final String KEY_HOT_ARTICLES = "'hotArticles'"; // Note the single quotes for SpEL string literal
    public static final String KEY_ARTICLE_ARCHIVES = "'archives'";

    // Cache TTLs (in seconds for potential programmatic use, though primarily set in yaml)
    public static final long TTL_SECONDS_DEFAULT = 1800; // 30 minutes
    public static final long TTL_SECONDS_USER = 3600; // 1 hour for users
    public static final long TTL_SECONDS_ARTICLE = 1800; // 30 minutes for articles

} 